package es.ull.opendata.px2scovo.scovo;

import java.util.HashMap;
import java.util.Map;

public class NamespacesManager {
	private Map<String, String> namespaces;
	private final String baseNamespace = "http://opendata.taro.ull.es/istac#";
	
	public NamespacesManager() {
		namespaces = new HashMap<String, String>();
		// Initial namespaces
		namespaces.put("Tenerife", "http://sws.geonames.org/2510529/");
		namespaces.put("Fuerteventura", "http://sws.geonames.org/2517481/");
		namespaces.put("Lanzarote", "http://sws.geonames.org/2515699/");
		namespaces.put("Alemania", "http://sws.geonames.org/2921044/");
		namespaces.put("Francia", "http://sws.geonames.org/3017382/");
		namespaces.put("EspaÃ±a", "http://sws.geonames.org/2510769/");
		namespaces.put("TOTALRESIDENTESENESPAÃ‘A", "http://sws.geonames.org/2510769/");
		namespaces.put("ReinoUnido", "http://sws.geonames.org/62348447/");
		namespaces.put("Holanda", "http://sws.geonames.org/2750405/");
		namespaces.put("Dinamarca", "http://sws.geonames.org/2623032/");
		namespaces.put("Finlandia", "http://sws.geonames.org/660013/");
		namespaces.put("Noruega", "http://sws.geonames.org/3144096/");
		namespaces.put("Suecia", "http://sws.geonames.org/2661886/");
		namespaces.put("GranCanaria", "http://sws.geonames.org/2517107/");
		namespaces.put("LaPalma", "http://sws.geonames.org/2515680/");
		namespaces.put("Islasdedestinoprincipal", "http://opendata.taro.ull.es/istac#isla");
		namespaces.put("Lugaresderesidencia", "http://opendata.taro.ull.es/istac#pais");
		namespaces.put("EstadÃ­sticadeMovimientosTurÃ­sticosenFronterasdeCanarias(FRONTUR-Canarias)", "http://opendata.taro.ull.es/istac#numeroturistascanarias");
		namespaces.put("Islas", "http://opendata.taro.ull.es/istac#isla");
		namespaces.put("PaÃ­sesderesidencia", "http://opendata.taro.ull.es/istac#pais");
		namespaces.put("EncuestasobreelGastoTurÃ­stico", "http://opendata.taro.ull.es/istac#gastoturisticocanarias");
		namespaces.put("PaÃ­sesNÃ³rdicos", "http://opendata.taro.ull.es/istac#paisesnordicos");
	}
	
	public void insert(String key, String namespace) throws NamespacesManagerException {
		if (exist(key)) {
			throw new NamespacesManagerException("Error, The key is repeat");
		}
		namespaces.put(key, namespace);
	}
	
	public boolean exist(String key) {
		if (namespaces.containsKey(key)) {
			return true;
		}
		return false;
	}
		
	public String getNamespace(String key) throws NamespacesManagerException {
		key = key.replaceAll(" ", "");
		if (!exist(key)) {
			insert(key, baseNamespace + key);
		}
		return namespaces.get(key);
	}
}
